package taller2.interfaces;

public interface AlgorithmApplicator {

	// goes back to the first step of the algorithm
	public void firstStep();

	// advances to the next step of the algorithm
	public void NextStep();
	
	// goes back to the previous step of the algorithm
	public void previousStep();

	// returns the path to the graph representing the
	// actual step of the algorithm
	public String getGraphPath();	
	
	// returns the number of line in the pseudocode
	// that matches the last graph returned
	public int getPseudoCodeLine();
	
	// applyes the algorithm to the graph
	// and stores the path's and pseudocode lines
	public void solveProblem(Graph g);
	
	// resets the applicator to change the graph
	// and solve the problem again
	public void reset();
	
	//Devuelve el texto para el panel extra
	public String getAuxText();
	
	//Para persistencia
	public void save(String path);
	public void load(String path);

	public int getHighlightedWordNumber();
}
